Ландшафт операторов в Julia спроектирован для отражения математической нотации, соединяя формальную математику и высокопроизводительные вычисления с помощью богатого набора символов ASCII и символы Юникода.
1. Основы арифметики
Помимо стандартных бинарных операторов, в Julia доступны унарные формы ($+x, -x$) и специализированное деление. Ключевыми особенностями являются обратное деление ($x \backslash y$), эквивалентное $y / x$, и оператор остатка ($x \% y$), эквивалентный rem(x,y).
- $+x, -x$ (Унарные)
- $x + y, x - y, x * y$
- $x / y$ (Деление)
- $x \div y$ (Целочисленное деление)
- $x \backslash y$ (Обратное деление)
- $x ^ y$ (Степень)
- $x \% y$ (Остаток)
- $\sim x$ (Побитовое НЕ)
- $x \& y$ (И)
- $x | y$ (ИЛИ)
- $x \veebar y$ (ИСКЛЮЧАЮЩЕЕ ИЛИ / ⊻)
- $x >>> y$ (Логический сдвиг)
- $x >> y$ (Арифметический сдвиг)
- $x << y$ (Сдвиг влево)
2. Точность и типы данных
Логическое отрицание !x строго предназначено для логических значений (Булевы), тогда как тильда ($\sim$) выполняет побитовое НЕ для целых чисел. Критически важным является осознание типа; применение $\sim$ к типу UInt8 по сравнению с типом UInt32 дает разные результаты в шестнадцатеричной системе, поскольку операции выполняются на конкретной ширине битового поля соответствующего типа.